/**
 * 函数防抖
 * @param fn 防抖方法
 * @param time 间隔时间
 * @param config 配置 {first：首次点击是否执行 end：时间结束后是否执行}
 * @returns 
 */
export function debounce(fn: any, time: number) {
    let dflt: any;
    return function () {
        // @ts-ignore
        // eslint-disable-next-line prefer-rest-params, prefer-const
        let _arg = arguments;
        if (dflt) clearTimeout(dflt);
        dflt = setTimeout(function () {
            // @ts-ignore
            fn.apply(this, _arg);
        }, time);
    };
};

